// -----------------------------
// Author: 		Dhaenens Gert 
// Creation: 	10/18/2014 12:59:59 AM				
// -----------------------------

#ifndef _Mesh_h
#define _Mesh_h

#include "RefObject.h"

class RenderManager;

class Mesh : public RefObject
{
public:
	typedef vector<Vertex>	VertexList;
	typedef vector<Index>	IndexList;

	Mesh(RenderManager* lpRenderManager);
	virtual ~Mesh();

	void		SetVertices(const VertexList& vertices);
	void		SetIndices(const IndexList& indices);

	VertexList	GetVertices() const;
	IndexList	GetIndices() const;

	IBuffer*	GetVertexBuffer() const;
	IBuffer*	GetIndexBuffer() const;

private:

	RenderManager*	m_lpRenderManager;
	IBuffer*	m_lpVertexBuffer;
	IBuffer*	m_lpIndexBuffer;

	VertexList	m_Vertices;
	IndexList	m_Indices;

	Mesh(const Mesh& refMesh);
	Mesh& operator=(const Mesh& refMesh);
};

#endif